package com.linq.cool.system.service;

import com.linq.cool.api.vo.LoginUser;
import com.linq.cool.system.vo.SysOnlineUser;

/**
 * @Author: yqlin
 * @Date: 2021/1/29 08:26
 * @Description:
 * @Version: 1.0.0
 */
public interface SysOnlineUserService {
    /**
     * 通过登录地址查询信息
     *
     * @param ip 登录地址
     * @param vo 用户信息
     *
     * @return 在线用户信息
     */
    SysOnlineUser getByIp(String ip, LoginUser vo);

    /**
     * 通过用户名称查询信息
     *
     * @param username 用户名称
     * @param vo       用户信息
     *
     * @return 在线用户信息
     */
    SysOnlineUser getByUsername(String username, LoginUser vo);

    /**
     * 通过登录地址/用户名称查询信息
     *
     * @param username
     * @param ip       登录地址
     * @param vo       用户信息
     *
     * @return 在线用户信息
     */
    SysOnlineUser getByParams(String ip, String username, LoginUser vo);

    /**
     * 设置在线用户信息
     *
     * @param user 用户信息
     *
     * @return 在线用户
     */
    SysOnlineUser loginUserToOnlineUser(LoginUser user);
}
